const list = {
  common: [
    "以下所有配置项，均支持此种配置，如：开启配置：只赋值 'default'、'{}' 或 '无此项配置' 即可，这将启用 '默认配置'; ",
    "关闭配置：只需要赋值 'false' 即可;",
    "推荐使用命令 'cvlar i' 初始化配置文件",
    '',
    '下方内容中',
    '  {x} 则为占位符',
    '  {{xxx}} 则为变量'
  ],
  commit: 'Git提交，方便在菜单中选择性提交内容',
  'commit.type': [
    'Git提交类型，赋值数组，如下所示：',
    '[',
    '  {',
    "    emoji:'✨', 可选：不设置表示不启用表情",
    "    name:'Feature', 必须：提交类型名称，将作为 Git 提交消息的一部分，如：✨Feature(Scopes)：新特性",
    "    description:'新特性' 必须：用于在菜单中做备注说明，不会出现在 Git 提交消息中",
    '  },',
    '  {',
    "    emoji:'🐛',",
    "    name:'Fix',",
    "    description:'修复Bug'",
    '  },',
    '  ...',
    ']'
  ],
  'commit.scope': [
    'Git提交范围，赋值数组，如下所示：',
    '[',
    '  {',
    "    name:'i18n', 必须：提交范围名称，将作为 Git 提交消息的一部分，如：✨Feature(i18n)：新特性",
    "    description:'国际化' 必须：用于在菜单中做备注说明，不会出现在 Git 提交消息中",
    '  },',
    '  {',
    "    name:'docs',",
    "    description:'文档更新'",
    '  },',
    '  ...',
    ']'
  ],
  'commit.submit': "使用自己的语言描述 'Git提交信息'，而后会通过 'Google翻译' 自动翻译成 '英语'，再执行 'Git提交'",
  'commit.submit.origin': ["你想通过什么语言来描述 'Git提交信息'", '  支持的语言列表：https://cloud.google.com/translate/docs/languages'],
  'commit.submit.target': ["你想将 'Git提交信息' 翻译成什么语言，支持的语言列表同上", '  支持的语言列表：https://cloud.google.com/translate/docs/languages'],
  package: '包管理，方便在菜单中选择性执行特定命令',
  'package.scripts': [
    'package.json 中的 scripts 配置项，赋值对象，如下所示：',
    '{',
    "  dev: 'npm run dev',",
    "  build: 'npm run build',",
    "  'test:watch': 'npm run build',",
    '  ...',
    '}',
    '',
    '格式说明：',
    "  key：必须，表示命令名称，必须和 'package.json' 中的 'scripts' 配置项中的 'key' 一致，否则无法正确执行命令",
    '  value：必须，表示命令描述，用于在菜单中做说明',
    '    空字符串，在菜单中，将直接使用key表示',
    '    非空字符串，在菜单中，将直接使用value表示'
  ],
  'package.manager': '包管理工具',
  'package.manager.type': ['包管理工具类型，赋值字符串，可赋值：', 'npm, yarn, pnpm, 等其他包管理工具的名称'],
  'package.manager.registry': [
    '依赖源，默认：auto，表示按照包管理工具的默认源，一般是：https://registry.npmjs.org',
    '注意：此配置不会影响全局或当前项目的依赖源，只会影响通过本工具安装的依赖时的依赖源'
  ],
  'package.manager.commands': [
    '包管理命令，格式说明：',
    "  key：必须，表示命令名称，例如 'npm install xxx'，'key' 就是 'install'",
    '  value：必须，表示命令描述，用于在菜单中做说明',
    '    空字符串，在菜单中，将直接使用key表示',
    '    非空字符串，在菜单中，将直接使用value表示',
    '注意：',
    '  1. 以下默认命令，均以 npm 为准，您可自行修改',
    '  2. 如果您使用的是 yarn 或 pnpm，可能会出现不兼容的情况，',
    '     您可以自行修改与之对应的命令即可',
    '  3. 新版本的 npm/yarn/pnpm 命令均互相兼容，',
    '     若出现不兼容的情况，自行修改下方命令或升级包管理工具'
  ],
  version: '版本管理，可用于升级、撤销 版本号，自动升级和提交',
  'version.validate': [
    '验证版本号的正则表达式，正则对象',
    '  正则说明：https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string',
    '  正则演示：https://regex101.com/r/vkijKf/1/'
  ],
  'version.package': '是否自动更新 package.json 中的版本号，布尔类型，默认：true',
  changelog: '日志，自动根据 Git 提交记录生成日志',
  'changelog.file': '日志文件相关配置',
  'changelog.file.limit': [
    'CHANGELOG 文件中记录版本的条数',
    '  0表示不限制，全部记录; ',
    '  默认 10 条版本号的日志（不是只能写10行日志，而是10个版本的记录）',
    '  表示每个文件最多记录 10 条，且自动分页',
    '  超过 10 条则自动创建新的 CHANGELOG 文件，文件名为 md5(content).md，以此类推',
    '',
    '  若是没有满足 limit 条数，则会将所有的日志都存放在这个目录中的 index.md 文件中；',
    '  当有不同翻译版本时，会依据语言代码自动创建对应目录，例如：zh-CN/index.md、en/index.md、等；',
    '  你可以在项目根目录下创建一个 CHANGELOG.md 文件，链接到这个目录中的 index.md 文件；',
    '',
    '  如果已应用此配置，并且生成了日志，它只会影响后续生成的日志',
    '  如果想要全部应用新的配置',
    '    使用 `日志管理` 功能，`重新生成日志` 或 `清理日志` 后，再 `重新生成`'
  ],
  'changelog.save': '日志存储的目录',
  'changelog.translate': '日志翻译相关配置',
  'changelog.translate.origin': ["CHANGELOG 文件的原始语言，default 'zh-CN'", '  支持的语言列表：https://cloud.google.com/translate/docs/languages'],
  'changelog.translate.target': [
    "CHANGELOG 文件的目标语言，default 'en'，可以是数组，表示翻译成多种语言",
    "若已存在翻译版本的日志，仅对新生成的日志有效，你可选择 '重新生成所有日志'",
    '  支持的语言列表：https://cloud.google.com/translate/docs/languages',
    '',
    '【注意】不建议设置语言过多，因为 github api 可能会对过长的内容截断！'
  ],
  'changelog.template': '日志模板相关配置',
  'changelog.template.content': [
    'CHANGELOG 文件的内容模板，支持 md 语法',
    '  默认值：',
    '    ## 🎉 {{tag}} `{{date}}`',
    '    {{logs}}',
    '',
    '日志会按照提交类型顺序分类',
    '目前支持的变量如下：',
    '  tag (必选)：必须，tag名',
    '  date (可选)：可选，日期，如：2023-12-17',
    '  time (可选)：可选，时间，如：04:59:39',
    '  logs (必选)：必须，日志内容，对应下面的 logs 配置项',
    '',
    '【注意】当已存在使用此模板生成的日志，且启用了 `cvlar -r/release` 自动发布，',
    '       建议重新生成所有日志，避免 `cvlar -r/release` 自动发布时，可能无法准确获取到日志内容'
  ],
  'changelog.template.logs': ['根据type分类，具体的日志内容', '若已存在翻译版本的日志，仅对新生成的日志有效，', "你可选择 '重新生成所有日志'"],
  'changelog.template.logs.title': '标题模板',
  'changelog.template.logs.title.standard': [
    '标准的标题模板，也就是`提交类型`存在时的模板',
    '',
    '可使用的变量：',
    '  emoji:`提交类型`对应的 emoji',
    '  type：`提交类型`，变量首字母大写，则内容首字母也会大写',
    '  scope：提交范围，变量首字母大写，则内容首字母也会大写',
    '  date: 日期，如：2023-12-17',
    '  time: 时间，如：04:59:39'
  ],
  'changelog.template.logs.title.other': '其他标题模板，也就是`提交类型`不存在时的模板，无法根据`提交类型`分类的标题',
  'changelog.template.logs.item': [
    '每条日志消息的模板',
    '',
    '可使用的变量：',
    '  message：日志消息，变量首字母大写，则内容首字母也会大写',
    '  commitlink：提交记录详情页链接',
    '  date: 日期，如：2023-12-17',
    '  time: 时间，如：04:59:39'
  ],
  'changelog.template.logs.commitlink': ['CHANGELOG 文件中，每条日志均有具体的提交详情页', '用于跳转到提交记录详情页链接'],
  'changelog.template.logs.commitlink.text': [
    '链接文本',
    '  id：表示提交的ID',
    '   [substr:n,l]：',
    '   n（必要参数）：表示从第几个字符开始截取，若l不存在，此参数就表示从 0 截取到 n 个字符',
    '   l（可选参数）：表示截取多少个字符'
  ],
  'changelog.template.logs.commitlink.url': ['链接地址', '', '可使用的变量：', 'id：表示提交id，完整的ID一般为40位'],
  'release.subject': ['发布页面，tag版本标题模板', '', '可使用的变量：', '  tag：tag名'],
  'release.pushTagMessage': [
    '每当你创建新标签到暂存到git本地仓库，并且还未推送到远程仓库时，',
    '会自动执行日志生成，翻译，写入文件等操作。',
    '这样会导致你的仓库文件发生变化，因此需要提交这些变化的文件到仓库（一般仅有日志变化），',
    '因此需要提交信息，但总不能每次提交tag都要手动选择一遍 commit type 和 commit scope 吧，这样太麻烦了，而且每次提交信息都差不多，所以就有了这个配置项',
    '',
    '但是，由于暂存到本地仓库的标签，不包含新创建的日志',
    '所以，需要撤销本地仓库的标签，重新创建同样的标签，这样就会包含新的日志',
    '',
    '因此内部执行的流程看起来是这样的：',
    ' 1、创建标签 1.0.0（肯定不会包含第二步的日志内容）',
    ' 2、根据标签生成日志',
    ' 3、暂存日志到git本地仓库',
    ' 4、撤销本地git仓库标签 1.0.0',
    ' 5、重新创建标签 1.0.0（这样就会包含根据标签生成的日志）',
    ' 6、推送本地仓库到远程仓库',
    ' 7、推送标签到远程仓库',
    '',
    '',
    '根据下面的 `type`、`scope` 和 `subject`，生成的提交信息的短说明：',
    '程序内部执行的模板：{{emoji}}{{type}}({{scope}}): {{subject}}',
    '',
    '如果使用的是默认 `commit types` 和 `commit scopes` 配置',
    '而且 `subject` 内容为 `new version {{tag}}`',
    '那么最终结果如下：',
    '📦️ release(tag): new version 1.0.0'
  ],
  'release.pushTagMessage.type': ['提交类型，参考本文配置文件中的 `commit.types`', '将根据 `name` 字段，自动匹配到对应的提交类型', '', '【注意】建议与 `commit.types` 中的 `name` 字段保持一致'],
  'release.pushTagMessage.scope': ['可选，`commit scopes`，提交范围，参考本文配置文件中的 `commit.scopes`', '', '【注意】建议与 `commit.scopes` 中的 `name` 字段保持一致'],
  'release.pushTagMessage.subject': [
    '`commit subject`，提交信息的短说明',
    '',
    '可使用的变量：',
    ' tag：tag名',
    '',
    '若是启用了提交信息翻译，即 `commit.submit` 配置项不为 false',
    '`commit.submit.origin` 这里指定什么语言，此选项就应该使用什么语言写内容',
    '`commit.submit.target` 而后会根据这个配置，将内容翻译成指定的语言'
  ],
  'release.lang': ['当启用多语言', '即 `changelog.translate.origin` 和 `changelog.translate.target` 配置项不为 false 时，使用此配置项'],
  'release.lang.subject': ['多语言内容模板', '', '可使用的变量：', '  name（必要参数）：语言名称', '  code（可选参数）：语言代码', '', '若不需要，可设置此项为false，将不会在日志中出现此标题'],
  'release.lang.separator': '多语言内容之间的分隔符',
  'release.poweredby': [
    '布尔类型，默认：true',
    "是否在 'Github Release' 内容中，每条 'Release' 的最后，加入如下md代码：",
    '  > This [Changelog](CHANGELOG.md), Powered by @kwooshung/[cvlar](https://github.com/kwooshung/cvlar/)',
    "  其中，`CHANGELOG.md` 表示当前 您仓库中 'Changelog' 入口文件的相对路径",
    '  参考：https://github.com/kwooshung/cvlar/releases'
  ],
  i18n: ['用于此工具提示信息的国际化配置', '可自定义任何语言，以下内容根据内容自行翻译需要的语言即可'],
  'i18n.yes': '是，主要用于菜单中的单选，表示选中',
  'i18n.no': '否，主要用于菜单中的单选，表示未选中',
  'i18n.choicesLimit': ['最多可选数量，主要用于菜单中的选项，', '表示最少展示多少个选项，多余的将需要滚动查看'],
  'i18n.checkbox': '多选，只能用于菜单中的多选中的菜单相关配置',
  'i18n.checkbox.instructions': '在多选菜单展示时，默认提示，表示按键操作',
  'i18n.select': '一级菜单的标题',
  'i18n.scripts': 'package.json 中的 scripts，用于菜单中的运行脚本',
  'i18n.scripts.message': '菜单中的运行脚本的标题',
  'i18n.package.commands.search.result.score.process.symbol': [
    '搜索结果的包打分的进度条符号',
    "  若是设置为字符串：'▇'",
    '    则表示为：▇▇▇▇▇▇▇▇▇▇▇▇',
    '',
    "  若设置为字符串数组：['▇', '_']",
    '    则表示为：▇▇▇▇________'
  ],
  'i18n.package.commands.search.result.score.process.length': ['搜索结果的包打分的进度条长度, ', '  默认：50', '  会自动根据值计算百分比'],
  'i18n.package.commands.search.result.score.process.activeBold': '表示激活的进度，是否加粗，布尔类型，默认：false',
  'i18n.package.commands.search.pagination.size': '每页条数',
  'i18n.package.commands.search.pagination.range': '页码范围',
  'i18n.git': 'git相关',
  'i18n.git.commit': 'git 提交相关',
  'i18n.git.commit.subject': [
    'git提交信息，短说明，',
    '',
    ' 其中',
    '   transformer：可选，表示对值处理函数',
    '   validate：可选，表示验证函数',
    '',
    '   两个函数均可自定义，具体请参考：https://github.com/SBoudrias/Inquirer.js/tree/master/packages/input'
  ],
  'i18n.git.commit.body': '长说明，同样支持 `transformer` 和 `validate`',
  'i18n.git.commit.body.required': '是否必填项，布尔类型，默认：false',
  'i18n.git.commit.body.requiredMessage': '必填项的提示信息',
  'i18n.git.commit.breaking': '破坏性变更，不向下兼容, 同样支持 `transformer` 和 `validate`',
  'i18n.git.commit.custom': [
    '自定义字段，支持三种类型：`input`、`select`、`checkbox`，参考本项目仓库根目录下的 `.ks-cvlarrc.cjs` 文件',
    '在仓库说明中，也有此配置的详细说明',
    '若不需要，可删除 `custom` 字段 或 将 `custom` 字段赋值为 `false`'
  ],
  'i18n.git.commit.issues': 'issues相关',
  'i18n.git.commit.issues.close.choices': 'issues相关，可自定义关键字，默认：`fixes`、`resolves` 和 `closes`',
  'i18n.git.commit.issues.number.message': 'issues ID 号',
  'i18n.git.commit.complate': [
    '生成提交信息后，触发此函数，可自行处理提交信息的格式',
    '返回值，是一个对象，包含两个属性，fail、val：',
    '  fail：true时，则不会继续执行提交操作，',
    '  val：提交信息',
    '也可用于自定义提示信息'
  ],
  'i18n.git.commit.push.default': 'true：自动选择是，false：自动选择否，默认：false',
  'i18n.git.commit.tag.default': 'true：自动选择是，false：自动选择否，默认：false',
  'i18n.git.version': '升/降级版本号相关',
  'i18n.package': '包管理相关',
  'i18n.changelog': '日志相关，也与 `cvlar -r` 相关，若没有启用日志，则 `cvlar -r` 也无法使用',
  'i18n.help': '帮助相关',
  'i18n.back': '返回上级菜单',
  'i18n.exit': '推出'
};

export default list;
